package cn.csc.module.member.controller.app.menu.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigInteger;

/**
* 菜单权限 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class AppMemberMenuBaseVO {

    @ApiModelProperty(value = "菜单名称", required = true)
    @NotNull(message = "菜单名称不能为空")
    private String name;

    @ApiModelProperty(value = "权限标识", required = true)
    @NotNull(message = "权限标识不能为空")
    private String permission;

    @ApiModelProperty(value = "菜单类型", required = true)
    @NotNull(message = "菜单类型不能为空")
    private Byte type;

    @ApiModelProperty(value = "显示顺序", required = true)
    @NotNull(message = "显示顺序不能为空")
    private Integer sort;

    @ApiModelProperty(value = "父菜单ID", required = true)
    @NotNull(message = "父菜单ID不能为空")
    private BigInteger parentId;

    @ApiModelProperty(value = "路由地址")
    private String path;

    @ApiModelProperty(value = "菜单图标")
    private String icon;

    @ApiModelProperty(value = "组件路径")
    private String component;

    @ApiModelProperty(value = "组件名")
    private String componentName;

    @ApiModelProperty(value = "菜单状态", required = true)
    @NotNull(message = "菜单状态不能为空")
    private Byte status;

    @ApiModelProperty(value = "是否可见", required = true)
    @NotNull(message = "是否可见不能为空")
    private Boolean visible;

    @ApiModelProperty(value = "是否缓存", required = true)
    @NotNull(message = "是否缓存不能为空")
    private Boolean keepAlive;

    @ApiModelProperty(value = "是否总是显示", required = true)
    @NotNull(message = "是否总是显示不能为空")
    private Boolean alwaysShow;

}
